Selection of advertisements for placement with content

ABSTRACT

Methods, systems, and apparatus, including computer program products, for selecting advertisements. A request for sponsored content for presentation with a content item in a document is received. One or more candidate sponsored content items are identified based on one or more criteria. The criteria includes information related to the content item independent of the document, and information related to the document. One or more of the candidate sponsored content items are selected. The selected sponsored content items are transmitted for presentation with the content item.

RELATED APPLICATIONS

This application is a continuation of and claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 11/850,652, titled “Selection Of Advertisements For Placement With Content,” filed Sep. 5, 2007, which was a non-provisional of and claimed benefit under 35 U.S.C. §119 of U.S. Patent Application No. 60/946,702, titled “Selection of Advertisements for Placement with Content,” filed Jun. 27, 2007, which are incorporated by reference herein in its entirety.

BACKGROUND

The subject matter of this specification relates generally to advertising.

Online video is a growing medium. The popularity of online video services reflects this growth. Advertisers see online video as another way to reach their customers. Many advertisers are interested in maximizing the number of actions (e.g., impressions and/or click-throughs) for their advertisements. To achieve this, advertisers make efforts to place advertisements with content that is relevant to their advertisements. For example, an advertiser can target its car advertisements to a website about cars.

SUMMARY

In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a request for sponsored content for presentation with a content item, where the content item is included in a document; identifying one or more candidate sponsored content items based on a plurality of criteria, which includes information related to the content item independent of the document and information related to the document; selecting one or more of the candidate sponsored content items; and transmitting the selected sponsored content items for presentation with the content item. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.

In general, another aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a request for sponsored content for presentation with a content item, where the content item is included in a presentation environment; identifying one or more candidate sponsored content items based on a plurality of criteria, which includes information related to the content item and information related to the presentation environment; selecting one or more of the candidate sponsored content items; transmitting the selected sponsored content items for presentation with the content item in the presentation environment. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.

Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. Advertisements can be placed for presentation with third party video content. The placed advertisements are selected for relevance to video content, content of a page in which the video is embedded, and other related content. Advertisers can automatically and dynamically target embedded video content that may change over time.

The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example network environment.

FIG. 2 is a block diagram illustrating an example advertising delivery system.

FIGS. 3-4 are examples of a user interface illustrating advertising content displayed on a screen with video content.

FIG. 5 is a flow diagram illustrating an example process for selecting and delivering advertisements.

FIG. 6 is a block diagram illustrating an example generic computer and an example generic mobile computer device.

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 shows an example of a network environment 100. The environment 100 includes a sponsored content (e.g., advertisement) provider 102, a content sponsor (e.g., provider) 104, and one or more user devices 106, at least some of which communicate across network 108. By way of example, discussion provided herein will make reference to the delivery of advertisements to a content provider. Other forms of sponsored content are possible. In some implementations, the advertisement provider 102 can provide advertising content (e.g., advertisements or “ads” or “ad” in the singular) for presentation with content items (e.g., text, images, video, audio, games, multimedia playlists (such as static, dynamic or executable lists of multiple content items to be played), embedded executables or software) provided by the content provider 104. For example, a video can be provided by the content provider 104 through the network 108 to one or more user devices 106. The ad content can be distributed, through network 108, to one or more user devices 106 before, during, or after presentation of the video. In some implementations, advertisement provider 102 is coupled with one or more advertising repositories (not shown). The repositories store advertising that can be presented with various types of content items, including video and audio.

In some implementations, the environment 100 can be used to identify relevant advertising content based on the content of the content item and perhaps other criteria. For example, the advertisement provider 102 can acquire information about the subject matter of a video, such as by reading video metadata that includes keywords that describe the subject matter of the video, and/or analyzing speech in the video, and/or analyzing the visual content of the video, for example. The information can be used to identify relevant advertisements, from which one or more are selected for presentation with the video.

In some implementations, content items can include various forms of electronic media. For example, a content item can include text, audio, video, advertisements, configuration parameters, documents, video files published on the Internet, television programs, audio podcasts, video podcasts, live or recorded talk shows, video voicemail, segments of a video conversation, and other distributable resources.

In some implementations, a “video content item” is an item of content that includes content that can be perceived visually when played, rendered, or decoded. A video includes video data, and optionally audio data, executable code, hyperlinks, and metadata. Video data includes content in the video that can be perceived visually when the video content item is played, rendered, or decoded. Audio data includes content in the video that can be perceived aurally when the video content item is played, decoded, or rendered. Executable code includes, for example, interactive ADOBE FLASH, JavaScript, or other forms of interactive content. Hyperlinks include, for example, links embedded in or associated with the video or executable code that provide an address link, such as a Uniform Resource Locator (URL), to other content or executable code. A video can include video data and any accompanying audio data regardless of whether or not the video is ultimately stored on a tangible medium. A video can include, for example, a live or recorded television program, a live or recorded theatrical or dramatic work, a music video, a televised event (e.g., a sports event, a political event, a news event, etc.), video voicemail, etc. Video, audio or other content items can also be part of a media playlist.

A video content item can also include many types of associated data or metadata. Metadata includes, for example, tags, labels, keywords, time stamps, XML-enclosed data, or other non-displayed information about the content. Examples of types of associated data include video data, audio data, closed-caption or subtitle data, a transcript, content descriptions (e.g., title, actor list, genre information, first performance or release date, etc.), related still images, user-supplied or provider-provided tags and ratings, etc. Some of this data, such as the description, can refer to the entire video content item, while other data (e.g., the closed-caption data) may be temporally-based or timecoded. In some implementations, the temporally-based data may be used to detect scene or content changes to determine relevant portions of that data for targeting ad content to users. The executable code and/or metadata may include interactive playlists of media content, such as lists of video, audio, web links, or other content types.

In some implementations, a video content item has one or more interstitial advertisement slots. One or more video advertisements can be presented in between the portions of the video separated by an advertisement slot, similar to television advertising commercials that are presented between portions of a television program. The positions of the advertisement slots can be specified by metadata associated with the video and stored at the video provider 209. The positions of the slots can be manually specified by the author of the video or automatically determined based on an analysis of the video. An example technique for analyzing a video to determine positions of advertisement slots is disclosed in U.S. patent application Ser. No. 11/737,038, titled “Characterizing Content for Identification of Advertising,” filed Apr. 18, 2007, which is incorporated by reference in its entirety herein. Further details related to advertisement slots are disclosed in U.S. patent application Ser. No. 11/550,388, titled “Using Viewing Signals in Targeted Video Advertising,” filed Oct. 17, 2006, which is incorporated by reference in its entirety herein.

In some implementations, an “audio content item” is an item of content that can be perceived aurally when played, rendered, or decoded. An audio content item includes audio data and optionally metadata. The audio data includes content in the audio content item that can be perceived aurally when the video content item is played, decoded, or rendered. An audio content item may include audio data regardless of whether or not the audio content item is ultimately stored on a tangible medium. An audio content item may include, for example, a live or recorded radio program, a live or recorded theatrical or dramatic work, a musical performance, a sound recording, a televised event (e.g., a sports event, a political event, a news event, etc.), voicemail, etc. Each of different forms or formats of the audio data (e.g., original, compressed, packetized, streamed, etc.) may be considered to be an audio content item (e.g., the same audio content item, or different audio content items).

Advertising content can include text, graphics, video, audio, banners, links, executable code and scripts, and other web or television programming related data. As such, ad content can be formatted differently, based on whether it is primarily directed to websites, media players, email, television programs, closed captioning, etc. For example, ad content directed to a website may be formatted for display in a frame within a web browser. As another example, ad content directed to a video player may be presented “in-stream” as a video content item is played in the video player. In some implementations, in-stream ad content may replace the video content item in a video player for some period of time or inserted between portions of the video content item. An in-stream ad can be pre-roll (before the video content item), post-roll (after the video content item), or interstitial. An in-stream ad may include video, audio, text, animated images, still images, or some combination thereof. The advertisement can appear in the same form as video content, as an overlay over video content, or in other forms. Examples of forms of advertisements for video that can be used with the implementations described in this specification are disclosed in U.S. Provisional Application No. 60/915,654, entitled “User Interfaces For Web-Based Video Player,” filed May 2, 2007; and U.S. patent application Ser. No. 11/760,709, entitled “Systems and Processes for Presenting Informational Content,” filed Jun. 8, 2007, which are incorporated by reference in their entirety herein.

The content provider 104 can present content to a user device 106 through the network 108. In some implementations, the content providers 104 are web servers where the content includes webpages or other content written in the Hypertext Markup Language (HTML), or any language suitable for authoring webpages. In general, content provider 104 can include users, web publishers, and other entities capable of distributing content over a network. In some implementations, the content provider 104 may make the content accessible through a known URL.

The content provider 104 can receive requests for content (e.g., articles, discussion threads, music, audio, video, graphics, search results, webpage listings, etc.). The content provider 104 can retrieve the requested content in response to the request or service the request in some other way. The advertisement provider 102 can broadcast content as well (e.g., not necessarily responsive to a request).

Content provided by content provider 104 can include news, weather, entertainment, or other consumable textual, audio, video, game, or multimedia content. More particularly, the content can include various resources, such as documents (e.g., webpages, plain text documents, dynamic network applications provided to the user on-the-fly, Portable Document Format (PDF) documents, images), video or audio clips, etc. In some implementations, the content can be graphic-intensive, media-rich data, such as, for example, FLASH-based content that presents video and audio, Asynchronous JavaScript and XML (AJAX) based web applications or web pages, and the like.

The content provider 104 can provide video content items for presentation to a user. The content provider 104 can provide a video content item as a stream or as a downloadable file to a user device 106. The content provider 104 can also provide a video player module with a video. In some implementations, a content item (e.g., a video content item, an audio content item) and a player module from the content provider 104 is embedded into a document (e.g., a webpage provided by content provider 104). The document includes the player module and a reference to the video or audio content item. The document can be sent to a user device 106. At the user device 106, the embedded player module can retrieve the referenced video or audio content item for playback at the user device 106. The player can provide a one or more pieces of content, such as via a playlist.

In some implementations, a document and a content item embedded in the documents are provided by different content providers. In an example implementation, a video from a first content provider is embedded in a document (e.g., a webpage) from a second content provider. The document includes a location (e.g., a URL) of the video at the first content provider. When the document is rendered at the user device 106, the video can be obtained from the second content provider and played back at the user device 106.

The environment 100 includes one or more user devices 106. The user device 106 can include a desktop computer, laptop computer, a media player (e.g., an MP3 player, a streaming audio player, a streaming video player, a television, a computer, a mobile device, etc.), a mobile phone, a browser facility (e.g., a web browser application), an e-mail facility, telephony means, a set top box, a television device or other electronic device that can access advertisements and other content via network 108. The content provider 104 may allow user device 106 to access content (e.g., webpages, videos, etc.).

The network 108 facilitates wireless or wireline communication between the advertisement provider 102, the content provider 104, and any other local or remote computers (e.g., user device 106). The network 108 may be all or a portion of an enterprise or secured network. In another example, the network 108 may be a virtual private network (VPN) between the content provider 104 and the user device 106 across a wireline or a wireless link. While illustrated as a single or continuous network, the network 108 may be logically divided into various sub-nets or virtual networks without departing from the scope of this disclosure, so long as at least a portion of the network 108 may facilitate communications between the advertisement provider 102, content provider 104, and at least one client (e.g., user device 106). In certain implementations, the network 108 may be a secure network associated with the enterprise and certain local or remote clients 106.

Examples of network 108 include a local area network (LAN), a wide area network (WAN), a wireless phone network, a Wi-Fi network, and the Internet.

In some implementations, the content provider 104 may transmit information about how, when, and/or where the ads are to be rendered, and/or information about the results of that rendering (e.g., ad spot, specified segment, position, selection or not, impression time, impression date, size, temporal length, volume, conversion or not, etc.) back to the advertisement provider 102 through the network 108. Alternatively, or in addition, such information may be provided back to the advertisement provider 102 by some other means.

FIG. 2 is a block diagram illustrating an example advertising delivery system 200. System 200 includes, or is communicatively coupled with, advertisement provider 201, content provider 203, and user device 205, at least some of which communicate across network 207. In some implementations, the advertisement delivery system 200 is an example implementation of the network environment 100, where advertisement provider 201 is an implementation of advertisement provider 102, content provider 203 is an implementation of content provider 104, user device 205 is an implementation of user device 106, and network 207 is an implementation of network 108.

In some implementations, the advertisement provider 201 includes a content analyzer 202, an ad selection module 204, an ad server 206, and a surrounding content module 208. The content analyzer 202 can analyze received content items (e.g., videos) to determine one or more targeting criteria for content items. For example, the content analyzer 202 may implement various analysis methods, including, but not limited to weighting schemes, speech processing, image or object recognition, and statistical methods.

Analysis methods can be applied to the contextual elements of the received content item (e.g., a video, an audio clip) to determine relevant targeting criteria. For example, the received content can undergo one or more of audio volume normalization, automatic speech recognition, transcoding, indexing, image recognition, etc. In some implementations, the content analyzer 202 includes a speech to text module 210 and an image recognition module 212. Other modules are possible.

The speech to text module 210 can analyze a video to identify speech in a video or audio file or stream. For example, a video content item may be received in the system 200. The speech-to-text module 210 can analyze the video content item as a whole. Textual information may be derived from the speech included in the audio data of the video or audio content item by performing speech recognition on the audio content, producing in some implementations hypothesized words annotated with confidence scores, or in other implementations a lattice which contains many hypotheses. Examples of speech recognition techniques include techniques based on hidden Markov models, dynamic programming, or neural networks.

In some implementations, the speech analysis may include identifying phonemes, converting the phonemes to text, interpreting the phonemes as words or word combinations, and providing a representation of the words, and/or word combinations, which best corresponds with the received input speech (e.g., speech in the audio data of a video content item). The text can be further processed to determine the subject matter of the video or audio content item. For example, keyword spotting (e.g., word or utterance recognition), pattern recognition (e.g., defining noise ratios, sound lengths, etc.), or structural pattern recognition (e.g., syntactic patterns, grammar, graphical patterns, etc.) may be used to determine the subject matter, including different segments, of the video content item. In some implementations, further processing may be carried out on the video or audio content item to refine the identification of subject matter in the video or audio content item.

A video or audio content item can also include timecoded metadata. Examples of timecoded metadata include closed-captions, subtitles, or transcript data that includes a textual representation of the speech or dialogue in the video or audio content item. In some implementations, a caption data module (not shown) at the advertisement provider 201 extracts the textual representation from the closed-caption, subtitle, or transcript data of the content item and used the extracted text to identify subject matter in the video or audio content item. The extracted text can be a supplement to or a substitute for a speech recognition analysis on the video or audio content item.

Further processing of received content can also include image or object recognition. For example, automatic object recognition can be applied to received or acquired video data of a video content item to determine targeting criteria for one or more objects associated with the video content item. For example, the image recognition module 212 may automatically extract still frames from a video content item for analysis. The analysis may identify targeting criteria relevant to objects identified by the analysis. The analysis may also identify changes between sequential frames of the video content item that may be indicia of different scenes (e.g., fading to black). Examples of object recognition techniques include appearance-based object recognition, and object recognition based on local features. An example of object recognition is disclosed in U.S. patent application Ser. No. 11/608,219, entitled “Image Based Contextual Advertisement Method and Branded Barcodes,” filed Dec. 7, 2006, which is incorporated by reference in its entirety herein.

The surrounding content module 208 reads content that is in proximity to (e.g., surrounds) an embedded content item. In implementations where a video or audio content item is embedded in a document, the surrounding content module 208 reads the content that surrounds the embedded content item, i.e. the content of the document other than the video itself. The surrounding content can be matched against advertisements to identify advertisements that have some subject matter relevance to the document, for example.

Advertisement provider 201 includes an ad selection module 204. In some implementations, the ad selection module 204 identifies, for a presentation of a content item, candidate advertisements and selects one or more of these candidate advertisements for presentation with the content item. The ad selection module 204 can identify the candidate advertisements based on multiple criteria, including advertiser preferences, content provider preferences, the content of the video, and content surrounding or in proximity to the video. From these candidate advertisements, one or more are selected for presentation with the video. In some implementations, advertisements are selected for presentation, in accordance with an auction. Further details on the identification of candidate advertisements and selection of advertisements are described below in reference to FIG. 5.

Advertisement provider 201 includes an ad server 206. Ad server 206 may directly, or indirectly, enter, maintain, and track ad information. The ads may be in the form of graphical ads such as so-called banner ads, text only ads, image ads, audio ads, video ads, ads combining one of more of any of such components, etc. The ads may also include embedded information, such as a link, and/or machine executable instructions. In some implementations, metadata can be associated with an advertisement. In some implementations, the metadata can include one or more keywords indicating topics or concepts to which the advertisement is relevant or other information that indicates the subject matter of the advertisement. In some implementations, the advertiser specifies one or more keywords that express the subject matter of the advertisement or one or more categories or verticals to which the advertisement is targeted.

Ad server 206 can receive requests for advertisements from a user device 205. In response to these requests, the ad server 206 can transmit selected advertisements to the user device 205. Further, the ad server 206 can receive usage information (e.g., advertisement click-through information) from the user device 205. Although not shown, other entities may provide usage information (e.g., whether or not a conversion or selection related to the ad occurred) to the ad server 206. For example, this usage information may include measured or observed user behavior related to ads that have been served. In some implementations, usage information can be measured in a privacy-preserving manner such that individually user identifiable information is filtered by the ad server, by the user device, or through an intermediary device.

The ad server 206 may include information concerning accounts, campaigns, creatives, targeting, advertiser preferences for ad placement, etc. The term “account” relates to information for a given advertiser (e.g., a unique email address, a password, billing information, etc.). A “campaign,” “advertising campaign,” or “ad campaign” refers to one or more groups of one or more advertisements, and may include a start date, an end date, budget information, targeting information, syndication information, etc.

The advertisement provider 201 can use one or more advertisement repositories 214 for selecting ads for presentation to a user. The repositories 214 may include any memory or database module and may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable local or remote memory component.

The content provider 203 includes a content server 215. The content server 215 can serve various types of content, including documents, video content items, and audio content items, for example. In some implementations, the content server 215 can serve documents that have other content (e.g., video or audio content items from the content provider 203 or another content provider) embedded within. The content that can be served by the content server 215 is stored in a content repository. In some implementations, different types of content can be stored in separate repositories. For example, documents can be stored in a document repository 217, and video content items and metadata associated with the video content items can be stored in a video content repository 218. In an exemplary implementation, video metadata is written using the Extensible Markup Language (XML).

In some implementations, the content server 215 serves video content items, such as video streams or video files, for example. Video player applications may be used to render video streams or files. Ads may be served by the ad server 206 in association with video content items. For example, one or more ads may be served before, during, or after a music video, program, program segment, etc. Alternatively, one or more ads may be served in association with a music video, program, program segment, etc. The videos that can be served by the content server 215 are stored in a videos and video metadata repository 218. In some implementations, the content provider 203 also provides access to documents (e.g., a webpage) that include information (e.g., subject matter and categories of the videos) about the videos in the video repository 218.

While FIG. 2 is illustrated as having one content provider providing both documents and content items (e.g., video content items), in some implementations, separate content providers, with different content servers, provide documents and content items, respectively. For example, a first content provider can provide document retrieved from a document repository, where the documents include references to content items (e.g., video or audio content items) stored in a content item repository and served by a second content server.

In operation, the advertisement provider 201 and the content provider 203 can provide content to a user device 205. The user device 205 is an example of an ad consumer. The user device 205 may include a user device such as a media player (e.g., an MP3 player, a streaming audio player, a streaming video player, a television, a computer, a mobile device, etc.), a browser facility, an e-mail facility, telephony means, etc.

The user device 205 includes an application 220 for rendering and presenting content and advertisements. In some implementations, the application is a web browser that can render and display documents (e.g., webpages) and other content. In an exemplary implementation, one or more plug-ins can be associated with the application. The plug-ins can facilitate rendering and presentation of content (e.g., video or audio content items) or advertisements by the application 220.

The user device 205 includes a content player module 222 and an advertising module 224. The content player module 222 can play back content items, such as video or audio content items, for example. In some implementations, the content player module 222 is embedded in a document (e.g., a webpage), and received by the user device 205 when the document is received by the user device 205. When the document is rendered by the application 220, the content player module 222 is executed by the application 220 or a plug-in to the application 220.

The advertising module 224 sends requests for advertisements to the advertising provider 201 and receives advertisements responsive to the requests from the advertising provider 201. The advertising module 224 can provide the advertisements to the application 220 or the content player module 222 for presentation to the user. In some implementations, the advertising module 224 is a sub-module of the content player module 222.

FIG. 3 is an example user interface 300 illustrating video content displayed on a screen with surrounding content. The user interface 300 illustrates an example web browser user interface. However, the content shown in the user interface 300 can be presented in a webpage, an MP3 player, a streaming audio player, a streaming video player, a television, a computer, a mobile device, etc. The content shown in the user interface 300 may be provided by advertisement provider 201, content provider 203, another networked device, or some combination of those providers.

As shown, the user interface 300 includes a content player region 302 and one or more “surrounding content” regions 304A, 304B, and 304C. The content player region 302 may include a media player for presenting text, images, video, or audio, or any combination thereof. An example of what can be shown in the content player region 302 is described in further detail below in relation to FIG. 4.

The surrounding content regions 304A, 304B, and 304C can display text, graphics, links, third party add-ins (e.g., search controls, download buttons, etc.), video and audio clips (e.g., graphics), help instructions (e.g., text, html, pop-up controls, etc.), and advertisements (e.g., banner ads, flash-based video/audio ads, scrolling ads, etc.). In some implementations, the surrounding content regions 304A, 304B, and 304C are portions of a webpage in which the content player is embedded.

The surrounding content may be related to the content displayed in the content player region 302. For example, advertisements related to the content in the content player region 302 can be displayed in any of the surrounding content regions 304A, 304B, 304C. As another example, the content in the content player region 302 is chosen for display with the surrounding content because they are related in subject matter (e.g., a video and a video player embedded with a posting in a blog). In some other implementations, the surrounding content is not related to the content in the content player region 302.

The surrounding content regions 304A, 304B, and 304C may be in proximity to the content player region 302 during the presentation of video content in the region 302. For example, the surrounding content regions 304A, 304B, and 304C can be adjacent to the content player region 302, either above, below, or to the side of the content player region 302. For example, the user interface 300 may include an add-on, such as a stock ticker with text advertisements. The stock ticker can be presented in one of the surrounding content regions 304A, 304B, or 304C.

FIG. 4 illustrates an example user interface that can be displayed in a video player, such as in content player region 302. Content items, such as video, audio, and so forth can be displayed in the content player region 302. The region 302 includes a content display portion 402 for displaying a content item, a portion 404 for displaying information (e.g., title, running time, etc.) about the content item, player controls 405 (e.g., volume adjustment, full-screen mode, play/pause button, progress bar and slider, option menu, etc.), an advertisement display portion 408, and a multi-purpose portion 406 that can be used to display various content (e.g., advertisements, closed-captions/subtitles/transcript of the content item, related links, etc.).

As shown, the content shown represents a video (or audio) interview occurring between a person located in New York City, New York and a person located in Los Angeles, Calif. The interview is displayed in the content display portion 402 of the region 302.

The region 302 may be presented as a stream, upon visiting a particular site presenting the interview, or after the execution of a downloaded file containing the interview or a link to the interview. As such, the region 302 may display additional content (e.g., advertisement content) that relates to the content shown in the video interview. For example, the additional content may change according to what is displayed in the region 302. The additional content can be substantially available as content from the content provider 203 and/or the advertisement provider 201.

An on-screen advertisement is displayed in the multi-purpose portion 406. An additional on-screen advertisement is displayed in the advertisement display portion 408. In some implementations, on-screen advertisements may include text-and-audio, video, text, animated images, still images, or some combination thereof.

In some implementations, the content display portion 402 can display advertisements targeted to audio-only content, such as ads capable of being displayed in-stream with a podcast or web monitored radio broadcasts. For example, the advertisement provider 201 may provide interstitial advertisements, sound bytes, or news information in the audio stream of music or disc jockey conversations.

Advertisements may be presented on the content display portion 402. Temporal placement of advertisements relative to a video content item may vary. For example, an advertisement presentation may be pre-roll, mid-roll or post-roll placement.

In some implementations, the progress bar in the player controls 405 also shows the positions of the advertisement slots in the content item being played.

The multi-purpose portion 406 may also include a skip advertisement link or control 410. When the skip advertisement link 410 is selected by the user, the currently displayed video advertisement is skipped and playback continues from the first frame of the video after the skipped video advertisement (or, playback stops if the skipped video advertisement is a post-roll advertisement). In some implementations, the skip advertisement link or control 410 is a link. In some other implementations, the skip advertisement link or control 410 may be a button, selectable icon, or some other user-selectable user interface object.

In some implementations, the ability of a user to skip advertisements, for example, by using the skip advertisement link or control 410, may effect the selection of an advertisement to be presented by the advertisement provider 201. For example, a large number of skips for an advertisement may indicate that the advertisement is ineffective or unpopular, and thus can be made less likely to be selected for presentation (e.g., by decreasing its bid in a placement auction or being counted as a negative weighting factor in auctions or towards advertising impressions). Inversely, advertisements that are infrequently skipped may have a positive weighting factor and or have a positive impact toward advertising impressions.

FIG. 5 illustrates an example process 500 for selecting and delivering advertisements for presentation with a content item. For convenience, the process 500 will be described in reference to a system (e.g., system 200) that performs the process. For ease of explanation, process 500 will be described with reference to a video content item (e.g., a video stream or file), but it should be appreciated that process 500 is also applicable to other content items, such as audio content items, as well.

A request for one or more advertisements is received (502). In some implementations, a user device 205 can receive a document from a content provider 203. In some implementations, the document can include an embedded video content item (hereinafter referred to as the “video”), an embedded content player (e.g., content player module 222), and an advertising module (e.g., advertising module 224). The advertising module 224 sends a request for advertisements to the advertisement provider 201. The request can be for one or more advertisements for presentation with the video. In some implementations, the request can specify the type (e.g., computer, mobile phone, etc.) of the user device 205 that sent the request. For example, the request can specify that the user device is a desktop or notebook computer or a mobile phone.

The request can include metadata associated with the video. The metadata can specify preferences on what and how advertisements are presented with the video. The preferences can be set by the author of the video, the author of the document in which the video is embedded, or content provider 203 (hereinafter referred to collectively as “content provider preferences”).

In some implementations, the content provider preferences specify the available positions in which video advertisements can be presented. For example, the metadata can specify that the video has two interstitial positions, a pre-roll position, and a post-roll position for advertisements, and that advertisements may be placed in any of these positions. As another example, the content provider preferences can specify that advertisements may be presented with the video only as post-roll advertisements, only as pre-roll advertisements before the video, only as interstitial advertisements between portions of the video, or some combination thereof (e.g., no interstitial advertisements=pre-roll or post-roll advertisements only).

The metadata can also include data that provides an indication of the content (e.g., the subject matter) of the video. For example, the metadata can include one or more keywords that specify topics or concepts to which the video is relevant. The metadata can include one or more categories or verticals (hereinafter referred as “channels”) into which the video can be classified. The metadata can also include information referencing one or more playlists or playlist categories on which the content is placed or linked. The topical data or the channel data can be used by the advertisement provider 201 to identify advertisements that are relevant to the video. In some other implementations, the topical or channel information of the video can be determined by analyzing the video.

In some implementations, the metadata can specify other types of content provider preferences as well. For example, the metadata can specify whether video advertisements displayed with the video can be skipped or not. As another example, the metadata can also specify one or more target demographics for the video. As a further example, the metadata can specify the time lengths of advertisement placement positions, the maximum allowable advertisement duration, and/or which types of advertisements (e.g., text ads, overlay ads, banner ads, pop-up ads, video ads, etc.) are allowed. In some implementations, the preferences in the metadata include blacklisted keywords or advertisers. An advertisement associated with a blacklisted keyword or advertiser is automatically disqualified from consideration for placement with the video. In some implementations, an advertiser in the blacklist is specified by a name and/or a URL associated with the advertiser.

One or more candidate advertisements are identified (504). In some implementations, one or more advertisements from the advertisements repository 214 are identified by the ad selection module 204 to be candidates in an auction for placement with the video. In some implementations, the candidate advertisements are identified based on multiple criteria.

In some implementations, a criterion for identification of candidate advertisements is advertiser preferences. For an advertisement, an advertiser can set preferences related to the presentation and targeting of the advertisement. The preferences can include preferences related to presentation position (e.g., pre-roll, post-roll, interstitial), capability of being skipped by the user, target demographics, type of device, and so forth. In some implementations, the advertiser preferences are matched against the content provider preferences.

For example, the advertiser can specify a preference as to whether a video advertisement can be presented pre-roll, post-roll, or in an interstitial slot. The advertiser can specify a preference as to whether a user viewing a video advertisement can be given the capability to skip it. The advertiser can specify a preference as to the target demographics to which the advertisement may be shown. The advertiser can specify that the advertisement is best viewed on a desktop/notebook computer or a mobile phone. Other types of preferences are possible.

In some implementations, other characteristics of the advertisement can be matched against the content provider preferences. For example, the content provider preferences may include a maximum allowable time length per video ad. A video ad may be disqualified if its length is longer than the maximum time length. As another example, the content provider preferences may include restrictions on which types of ads are allowed. If the ad does not belong to one of the allowed types, the ad can be disqualified.

In some implementations, an advertiser preference can be an absolute preference or a relative preference. If a preference is an absolute preference and it is not satisfied by the video, then the advertisement is disqualified from the auction, regardless of satisfaction of other preferences and relevance of the advertisement to the video or the document. If the preference is a relative preference and it is not completely satisfied, then the advertisement may still be eligible for the auction, subject to other criteria, but the incomplete satisfaction of the preference can be used to modify a bid associated with the advertisement in the auction. The advertiser preferences can specify a bid modifier for a preference, in case that preference is not satisfied completely.

In some implementations, the preferences can include a channel to which the advertisement is targeted. An advertiser can target an advertisement to a particular channel. Examples of channels include “news videos” or “action movies.” In some implementations, an advertisement targeted to a channel is identified as a candidate advertisement for auctions for placement with videos in that channel. However, an advertisement targeted to a channel can be disregarded with respect to a particular video in the channel if other advertiser preferences for the advertisement are not satisfied by the video. For example, an advertisement can be disregarded if the advertiser specified that the advertisement be presented only as a pre-roll ad but a video only allows interstitial and post-roll advertisements.

Yet another criterion for identifying candidate advertisements is the content (e.g., subject matter) of the video. The video can be associated with metadata specifying one or more topics or concepts. Alternatively, a document provided by the content provider (e.g., a webpage) can include topical or concept information for the video. The video can be retrieved by the advertisement provider 201 from the content provider 203 and analyzed by the content analyzer 202. One or more topics or concepts to which the video is relevant can be determined from the analysis. The content of the advertisement are compared against the topics or concepts of the video. In an example implementation, the topics or concepts of the video are compared to the topics and concepts of the advertisement. For example, the topical keywords of the video are compared to the topical keywords of the advertisement using, for example, keyword analysis, and a score can be determined from the comparison. If the score exceeds a threshold, for example, the advertisement can be identified as a candidate for the auction, pending satisfaction of other criteria, if any. Topics can also be determined from image, audio or video analysis.

In some implementations, the topical keywords for a video can be determined using search engine data. For example, data related to interactions to a video by users who were directed to the video by a search query (e.g., the video was a result for the search query) can be an indication of whether the search query is a good topical keyword for the video. Interactions with the video can include watching the video in its entirety, watching the video repeatedly, fast-forwarding or advancing the video, or skipping the video. A search engine can collect the query and interaction data anonymously and the advertisement provider 201 can analyze the data to determine if a search query is a good keyword for the video based on the interactions of the users. For example, if users who accessed a video through a search query tended to skip the video, then the search query can be determined to be a poor keyword for the video. On the other hand, if the users tend to watch the video over and over again, then search query can be determined to be a good keyword for the video. The good keywords are associated with the video and can be compared to the keywords for the advertisements.

In some implementations, an advertisement can target specific channels. A video can be analyzed to determine to which channel the video can be classified, or the channels to which the video can be classified can be specified in the video metadata. In other words, videos can be classified into channels based on the analysis of the videos, if no channels were pre-specified. If the targeted channels of the advertisement match any of the channels to which the video is classified, the advertisement is identified as a candidate for the auction, subject to satisfaction of other preferences (e.g., satisfaction of content provider preferences regarding placement position). Similarly, advertisements can target categories of playlists or individual playlists based on such categorization.

A further criterion for identifying candidate advertisements is the surrounding content around the embedded video. The surrounding content can include the content of the document in which the video is embedded. In some implementations, the surrounding content can also include the use profile of the owner of the document or the user viewing the video. For example, if a video is embedded in a person's page on a social networking site, the user profile of the person owning the page and/or the user profile of the user who is viewing the page and the video are surrounding content. The surrounding content module 208 can compare the surrounding content against the topics and concepts of the advertisement using, for example, keyword analysis, and a score can be determined from the comparison. If the score exceeds a threshold, for example, the advertisement can be identified as a candidate for the auction, pending satisfaction of other criteria, if any.

In some implementations, a “user profile” of a page owner or of a viewer of the video is demographic information associated with the respective user, such as age, gender, education, etc. Demographic information of a user can be extracted from the user's profile on a social networking site, for example. In some implementations, the demographic information can also be obtained from third parties. The demographic information can be obtained separate from any personally identifiable information.

In some implementations, a further criterion for identifying candidate advertisements is content of a page that links to the video. Hyperlinks to a video can be identified by a web crawler system. Content in the pages that contain the hyperlinks can be extracted. For example, the anchor text of a hyperlink and text content surrounding the hyperlink can be extracted. The extracted text can be compared to the topics and concepts of the advertisements, similar to the comparison of the surrounding content and the advertisement described above. In some implementations, the content from the linking page can be weighted higher if the linking page is a high-quality page based on inbound and outbound links, for example.

In some implementations, the page linking to the video or the page in which the video is embedded can be analyzed to determine if the content in the page is related specifically to the video or includes content related to other videos as well. For example, the page can be parsed in a structured way to identify components such as titles, particular blog posts, and so on. When identifying candidate advertisements for the video, content related to other videos can be weighted less or disregarded.

In some implementations, interaction data (e.g., skipping, fast-forwarding, watching multiple times, etc.) can be collected for users navigating to the video through the hyperlinks. The interaction data can be used to determine which hyperlinks and content related to the hyperlinks are more relevant to the video for use in advertisement selection.

In some implementations, another criterion is a text transcript of speech in the video generated by a speech recognition process applied to the video. The transcript can be a source of keywords for the video; keyword analysis can be applied to the transcript to identify keywords for the video.

In some implementations, the speech recognition process can also determine per-term confidence levels for terms in the transcript, where a term can include words, phrases, numbers, characters, etc. The per-term confidence levels measure a confidence of the speech recognition process that the corresponding terms were recognized correctly. The confidence levels can be used as weights for terms in the transcript. For example, for two terms in the transcript of approximately equal relevance to the video, the term with the higher confidence level is given more weight, and thus more influence, when matching advertisements to terms in the transcript. An example of using speech recognition, including confidence levels for terms, to identify advertisements relevant to content is disclosed in U.S. patent application Ser. No. 11/241,834, titled “Using Speech Recognition to Determine Advertisements Relevant to Audio Content and/or Audio Content Relevant to Advertisements,” filed Sep. 30, 2005, which is incorporated by reference herein in its entirety.

In some implementations, the transcript can also be used to verify any publisher-provided metadata regarding the subject matter of the video. For example, the publisher of the video can declare in the video metadata that the video is about cars. If the transcript indicates that the video is about baseball (e.g., because the transcript has no mention of “cars”), the video and the publisher can be flagged for further manual review. If the manual review confirms that the video metadata does not accurately describe the subject matter of the video, the publisher can be penalized (e.g., banned from receiving advertisements from the advertisement provider 201, lesser penalties).

In some implementations, the comparison with the surrounding content is omitted if the advertisement targets particular channels of videos.

As an example of how both the content of the video and the surrounding content can affect the identification of candidate advertisements, consider a video about cars. If the video is embedded in a webpage about racing, then advertisements for racing cars or sports cars, for example, can be identified as candidate advertisements. If the video is embedded in a webpage about parenting, then advertisements for family friendly cars (e.g., minivans) or child safety seats, for example, can be identified as candidate advertisements. Advertisements for racing cars or sports cars would be less likely to be identified as candidate advertisements in the second scenario because of the difference in the surrounding content (webpage about parenting vs. webpage about racing). In some implementations, content that is not likely to be relevant to the content of a webpage can be excluded from the targeting.

In some implementations, an advertisement is compared against both the content of the video and of the surrounding content, and the comparisons are combined in a weighted manner. For example, the comparison between the topics of the advertisement and the topics of the video, as determined from an analysis of the video can yield one score, the comparison between the topics of the advertisement and the content of the document in which the video is embedded yields another score. Further, comparison to the user profile of the document owner and/or to the user profile of a user viewing the document can yield respective scores. Weights can be specified for each of these types of comparisons. In some implementations, the weights can be specified by the author or provider of the video or the owner or provider of the document in which the video is embedded. The weights can be specified per provider and/or per content item. The weights can serve as an indication of which comparison should play a larger role in affecting which advertisements are candidates.

In some implementations, the weights can be adjusted over time to optimize the weightings. For example, weights can be determined from experimentation and empirical analysis of performance of advertisements placed using different weights. As another example, a machine learning process can be used to analyze the advertisement performance and adjust weights without manual intervention.

The scores from the comparisons to the content of the video and of the surrounding content can be combined into a weighted score for the advertisement using, for example, a linear combination. An example linear combination is S=αA+βB+γC+ . . . , where S is the weighted score, α, β, and γ are the weights, and A, B, C are the scores determined from the individual comparisons. A weighted score S can be determined for an advertisement. If the weighted score exceeds a specified threshold, then the advertisement is identified as a candidate advertisement for the auction. Otherwise, the advertisement is disregarded or disqualified.

One or more of the candidate advertisements are selected (506). In some implementations, the identified candidate advertisements are placed into an auction for presentation with the video. Advertisers can enter bids using the ad server 206, for example. The bids can be cost-per-click (CPC) bids or cost-per-thousand impression (CPM) bids. In an example implementation, the CPM bid of an advertisement can converted to an estimate CPC bid by multiplying the CPM bid with a click-through rate of the advertisement. The advertisements in the auction are then ordered based on their actual or estimate CPC bids.

In some implementations, the advertiser can enter a base bid and any number of bid modifiers. An example of a bid modifier is a decrease of $0.50 from the bid if the video allows skipping of advertisements. Another example of a bid modifier is a decrease of $0.50 from the bid if the video does not allow pre-roll advertisements. These modifiers allow an advertiser to fine tune its bid based on the advertiser's value of an ad placement under various conditions.

A bid of an advertisement can also be modified by the advertisement provider 201 based on the performance or quality of the advertisement over time. In some implementations, quality measures of an advertisement can include a click-through rate, a conversion rate, a skip rate, the number of times the advertisement was viewed completely vs. the number of impressions, and so forth. Advertisements of low quality based on these measures can have their bids decreased. For example, if the advertisement has a high rate of being skipped by viewers and/or has a low conversion rate, the bid can be decreased.

The advertisements with the highest bids are selected by the ad selection module 204 to fill the available advertisement placement positions. Thus, for example, if there are three available positions (say, a pre-roll position for one ad, an interstitial slot for one ad, and a post-roll position for one ad), the three advertisements with the highest bids are selected for the positions. In an example implementation, the advertisements are placed into the positions in their bid order. Thus, for example, the advertisement with the highest bid is placed in the earliest position, the advertisement with the next highest bid is placed in the next position, and so forth.

In some other implementations, the bid order determines a priority as to which of the selected advertisements will get a desired position. For example, if there are a pre-roll position, an interstitial slot, and a post-roll position, a highest bidding advertisement that prefers an interstitial slot will get the interstitial slot, while the next advertisement in the bid order can be placed in a pre-roll or a post-roll position even if the advertisement also prefers an interstitial slot.

The selected advertisements are transmitted for presentation with the video (508). The ad server 206 transmits the advertisements to the user device 205. The advertisements are received by the advertising module 224 and are placed into their respective positions. The content player module 222 displays the advertisements at their respective positions. For example, the advertisements can be displayed in-stream with a video in the content display region 402 (FIG. 4).

In some implementations, after the advertisements are transmitted to the user device 205, the user response to the advertisements and the video can be monitored. For example, data on click-throughs of the advertisement, viewing of the respective advertisements in their entirety (or not), viewing of the video in its entirety, and skipping of the advertisements can be collected by the advertisement provider 201. The advertisement provider can use this data to determine the performance of the advertisements, for example. In an example implementation where the content provider participates in a revenue sharing scheme, the performance data can be used to determine the amount of revenue to which the content provider is entitled. An example of a revenue sharing scheme is disclosed in U.S. patent application Ser. No. 11/755,624, entitled “Flexible Revenue Sharing and Referral Bounty System,” filed May 30, 2007, which is incorporated by reference in its entirety herein.

Further, the performance data can be used as a signal to adjust the weights of the scores of comparisons to the video and to the document or to adjust the bids of ads in an auction. For example, if the performance of an ad is good with respect to a particular video, the performance data can be used by the advertisement provider 201 to increase one or more weights with respect to the content provider of the video or with respect to the video. On the other hand, if the performance is poor, the weights can be decreased. As another example, the bid for a poor performing ad can be decreased, and the bid for a well performing ad can be increased.

In an example implementation of the process 500 described above, the identification of candidate advertisements begins, after receiving the request for advertisements, with the determination of advertisements that are relevant to the video and to the document based on comparisons to the video content and to the document content, as described above. An advertisement can be scored using a linear combination, for example, of the scores for the individual comparisons. For example, the score from the comparison to the video content can be weighted by a first weight to yield a first weighted score (e.g., αA) and the comparison to the document can be weighted by a second weight to yield a second weighted score (e.g., βB). The two weighted scores are added to yield the score for the advertisement. Ads with scores above a threshold are identified as candidates for further consideration.

The identified advertisements are then filtered by matching them against the content provider preferences. For example, if the content provider preferences specify a desire for interstitial ads only, and each ad can be at most 30 seconds long, then ads targeted for a pre-roll or post-roll position or that are longer than 30 seconds can be disqualified. As another example, if the content provider preferences specify a desire for video ads only, then non-video ads are disqualified.

One or more of the non-disqualified ads are selected based on an auction, where each of the non-disqualified ads is associated with a bid. The ads with the top bids are selected, subject to length restrictions. For example, if the auction is for one interstitial slot of 1 minute long, and the ad with the high bid is 40 seconds long, then the remaining 20 seconds in the slot can be filled by an ad of 20-seconds or shorter with the next highest bid, or it can go unfilled if there are no 20-second ad in the auction. The ads selected from the auction are transmitted to the user device 205 for presentation to the user. Data on user responses to the advertisements and the video (e.g., click-throughs of the advertisement, viewing of the respective advertisements in their entirety, viewing of the video in its entirety, and skipping of the advertisements) can be collected. The collected data can be used by the advertising provider 201 to adjust the weights in the determination of relevant advertisements and/or adjust the bids of ads in auctions.

FIG. 6 shows an example of a generic computer device 600 and a generic mobile computer device 650, which may be used with the techniques described above. Computing device 600 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, television set-top boxes, servers, blade servers, mainframes, and other appropriate computers. Computing device 650 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit the implementations described and/or the claims.

Computing device 600 includes a processor 602, memory 604, a storage device 606, a high-speed interface 608 connecting to memory 604 and high-speed expansion ports 610, and a low speed interface 612 connecting to low speed bus 614 and storage device 606. Each of the components 602, 604, 606, 608, 610, and 612, are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 602 can process instructions for execution within the computing device 600, including instructions stored in the memory 604 or on the storage device 606 to display graphical information for a GUI on an external input/output device, such as display 616 coupled to high speed interface 608. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 600 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).

The memory 604 stores information within the computing device 600. In one implementation, the memory 604 is a volatile memory unit or units. In another implementation, the memory 604 is a non-volatile memory unit or units. The memory 604 may also be another form of computer-readable medium, such as a magnetic or optical disk.

The storage device 606 is capable of providing mass storage for the computing device 600. In one implementation, the storage device 606 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 604, the storage device 606, memory on processor 602, or a propagated signal.

The high speed controller 608 manages bandwidth-intensive operations for the computing device 600, while the low speed controller 612 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 608 is coupled to memory 604, display 616 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 610, which may accept various expansion cards (not shown). In the implementation, low-speed controller 612 is coupled to storage device 606 and low-speed expansion port 614. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

The computing device 600 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 620, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 624. In addition, it may be implemented in a personal computer such as a laptop computer 622. Alternatively, components from computing device 600 may be combined with other components in a mobile device (not shown), such as device 650. Each of such devices may contain one or more of computing device 600, 650, and an entire system may be made up of multiple computing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, an input/output device such as a display 654, a communication interface 666, and a transceiver 668, among other components. The device 650 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 650, 652, 664, 654, 666, and 668, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

The processor 652 can execute instructions within the computing device 650, including instructions stored in the memory 664. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of the device 650, such as control of user interfaces, applications run by device 650, and wireless communication by device 650.

Processor 652 may communicate with a user through control interface 658 and display interface 656 coupled to a display 654. The display 654 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 656 may comprise appropriate circuitry for driving the display 654 to present graphical and other information to a user. The control interface 658 may receive commands from a user and convert them for submission to the processor 652. In addition, an external interface 662 may be provide in communication with processor 652, so as to enable near area communication of device 650 with other devices. External interface 662 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

The memory 664 stores information within the computing device 650. The memory 664 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 674 may also be provided and connected to device 650 through expansion interface 672, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 674 may provide extra storage space for device 650, or may also store applications or other information for device 650. Specifically, expansion memory 674 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 674 may be provide as a security module for device 650, and may be programmed with instructions that permit secure use of device 650. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 664, expansion memory 674, memory on processor 652, or a propagated signal that may be received, for example, over transceiver 668 or external interface 662.

Device 650 may communicate wirelessly through communication interface 666, which may include digital signal processing circuitry where necessary. Communication interface 666 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 668. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 670 may provide additional navigation- and location-related wireless data to device 650, which may be used as appropriate by applications running on device 650.

Device 650 may also communicate audibly using audio codec 660, which may receive spoken information from a user and convert it to usable digital information. Audio codec 660 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 650. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 680. It may also be implemented as part of a smartphone 682, personal digital assistant, or other similar mobile device.

The disclosed and other embodiments and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, the disclosed embodiments can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

The disclosed embodiments can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of what is disclosed here, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specifics, these should not be construed as limitations on the scope of what being claims or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understand as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Thus, particular embodiments have been described. Other embodiments are within the scope of the following claims. 

1. (canceled)
 2. A computer-implemented method comprising: receiving a request for sponsored content for presentation with a content item, wherein the content item is included in a document; for each of one or more candidate sponsored content items: calculating a first score based on, at least, a comparison of the candidate sponsored content item to one or more keywords for the content item; calculating a second score based on, at least, a comparison of content one or more second documents that link to the document to the candidate sponsored item; calculating a final score based on, at least, a combination of the respective first and second scores; selecting one or more of the candidate sponsored content items based on, at least, the candidate sponsored content item's respective final score; and providing the selected sponsored content items for presentation with the content item.
 3. The method of claim 2 wherein the content of each of the second documents comprises anchor text of one or more hyperlinks that point to the document.
 4. The method of claim 2 wherein calculating one of the scores is further based on a comparison of the candidate sponsored content item to content of the document.
 5. The method of claim 2 wherein the sponsored content items comprise one or more advertisements.
 6. The method of claim 2 wherein the content item comprises a video file or stream.
 7. The method of claim 2 wherein at least one of the keywords for the content item was selected based on historical user interaction with the content item when the content item was provided as a search result responsive to a query comprising the at least one keyword.
 8. The method of claim 2 wherein calculating the final score based at least partially on a combination of the respective first and second scores comprises weighting the first and second scores, wherein the first and second scores are weighted differently, and wherein a weight of the first or the second score is based at least partially on a measure of past user interactions with the candidate sponsored content item when the candidate sponsored content item was presented with the content item.
 9. The method of claim 2 wherein one of the one or more keywords is determined by analysis of the content item.
 10. The method of claim 2 wherein selecting one or more of the candidate sponsored content items comprises selecting one or more of the candidate sponsored content items based on respective bids associated with the candidate sponsored content items.
 11. A system comprising: data processing apparatus programmed to perform operations comprising: receiving a request for sponsored content for presentation with a content item, wherein the content item is included in a document; for each of one or more candidate sponsored content items: calculating a first score based on, at least, a comparison of the candidate sponsored content item to one or more keywords for the content item; calculating a second score based on, at least, a comparison of content one or more second documents that link to the document to the candidate sponsored item; calculating a final score based on, at least, a combination of the respective first and second scores; selecting one or more of the candidate sponsored content items based on, at least, the candidate sponsored content item's respective final score; and providing the selected sponsored content items for presentation with the content item.
 12. The system of claim 11 wherein the content of each of the second documents comprises anchor text of one or more hyperlinks that point to the document.
 13. The system of claim 11 wherein calculating one of the scores is further based on a comparison of the candidate sponsored content item to content of the document.
 14. The system of claim 11 wherein the sponsored content items comprise one or more advertisements.
 15. The system of claim 11 wherein the content item comprises a video file or stream.
 16. The system of claim 11 wherein at least one of the keywords for the content item was selected based on historical user interaction with the content item when the content item was provided as a search result responsive to a query comprising the at least one keyword.
 17. The system of claim 11 wherein calculating the final score based at least partially on a combination of the respective first and second scores comprises weighting the first and second scores, wherein the first and second scores are weighted differently, and wherein a weight of the first or the second score is based at least partially on a measure of past user interactions with the candidate sponsored content item when the candidate sponsored content item was presented with the content item.
 18. The system of claim 11 wherein one of the one or more keywords is determined by analysis of the content item.
 19. The system of claim 11 wherein selecting one or more of the candidate sponsored content items comprises selecting one or more of the candidate sponsored content items based on respective bids associated with the candidate sponsored content items.
 20. A program product stored on a machine readable storage medium that, when executed by data processing apparatus, causes the data processing apparatus to perform operations comprising: receiving a request for sponsored content for presentation with a content item, wherein the content item is included in a document; for each of one or more candidate sponsored content items: calculating a first score based on, at least, a comparison of the candidate sponsored content item to one or more keywords for the content item; calculating a second score based on, at least, a comparison of content one or more second documents that link to the document to the candidate sponsored item; calculating a final score based on, at least, a combination of the respective first and second scores; selecting one or more of the candidate sponsored content items based on, at least, the candidate sponsored content item's respective final score; and providing the selected sponsored content items for presentation with the content item. 